package tdh.xt.common.utils;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * @package com.xt.util
 * @description 格式化工具类，用来执行与格式化相关的工作
 * @author Ricardo
 * @date 2021/4/28 9:43
 * @copyright (c) 2021,南京通达海科技股份有限公司 All Rights Reserved.
 * @version 1.0
 * Modification History:
 * Date                  Author      Version     Description
 * ------------------------------------------------------------------
 * 2021/4/28 9:43       Ricardo       1.0    格式化工具类，用来执行与格式化相关的工作
 */
public class FormatUtil {

    /**
     * @description 私有化构造方法，防止误初始化工具类
     * @author RicarAN
     * @date 2021/5/13 13:41
     * @version 1.0
     */
    private FormatUtil(){}
    /**
     * @param date         日期字符串，此串必须已被sourceFormat格式化
     * @param sourceFormat 源日期的格式化字符串
     * @param targetFormat 目标日期的格式化字符串
     * @return java.lang.String 用目标格式化字符串格式化后的日期，如果不能格式化，则返回空字符串
     * @description 用给定格式格式化原格式化日期字符串，给定的原日期字符串必须已被使用sourceFormat格式化
     * @author RicarAN
     * @date 2021/4/28 9:47
     * @version 1.0
     */
    public static String dateFormat(String date, String sourceFormat, String targetFormat) {
        if (date == null || ("").equals(date)) {
            return "";
        }
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat(sourceFormat);
        String str = "";
        try {
            Date date1 = simpleDateFormat.parse(date);
            SimpleDateFormat sdf = new SimpleDateFormat(targetFormat);
            str = sdf.format(date1);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return str;
    }

    /**
     * @param format 格式化字符串
     * @return java.lang.String 返回当前日期时间被格式化后的字符串
     * @description 用指定的格式格式化当前日期
     * @author RicarAN
     * @date 2021/4/28 9:48
     * @version 1.0
     */
    public static String formatCurrentDateTime(String format) {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format);
        return simpleDateFormat.format(System.currentTimeMillis());
    }
}
